1
通往高性能内核之路
AI023Lesson 2
00:00

迈向高性能内核的旅程,始于从 以操作为中心 编程(PyTorch Eager)转向 硬件感知 编程。Triton 在这一路径中起到了关键桥梁的作用。

1. 定义技术栈

Triton 是一种用于并行编程的语言和编译器,旨在使开发者能够以 Python 语法高效编写高性能的自定义计算内核。它处于一个独特的中间位置:

  • PyTorch Eager: 高度抽象,易于使用,但对硬件资源的控制能力有限。
  • CUDA C++: 拥有最大控制权,但复杂度极高(需手动管理共享内存与同步)。
  • Triton: Python 风格语法,具备 块级 (分块)控制能力。
PyTorch Eager(高抽象层)Triton(块级 / 编译器驱动)CUDA / 汇编(底层)

2. 分块范式

与在 线程级别上运行的 CUDA 不同,Triton 采用 基于块(分块) 编程模型。这在深度学习中尤为重要,因为数据(矩阵、注意力图)天然具有分块结构。

3. 性能误区

一个常见误解是认为 Triton 只是“更快的 PyTorch”。实际上,它是一种独立的编程范式。性能提升源于开发者消除瓶颈的能力,例如通过融合操作将数据保留在高速片上 SRAM 中,从而突破“内存墙”限制。 消除瓶颈 (如“内存墙”),通过融合操作将数据保留在快速的片上 SRAM 中。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>